#ifndef LOMROOTHH
#define LOMROOTHH
#include "lom-typedefs.hh"
#include "lom-ref-counted.hh"


namespace lom
{
    class ILomInstanceManager;
    
    class LomRoot : public LomRefCounted
    {
    protected:
	THandle handle;
	ILomInstanceManager* mgr;
    
    public:
	LomRoot();
	virtual ~LomRoot();
	virtual THandle getHandle() { return handle; }
	/**
	   Called to register this object.  If reserved handle is zero then a new
	   handle is allocated, else the reserved handle value is used.
	   @see ILomInstanceManager::reserveHandle method.
	 */
	void initializeLomRoot( ILomInstanceManager* mgr
				, THandle reservedHandle = 0 );

    };
}
#endif
